<html>
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=EDGE">
    <meta name="renderer" content="webkit">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
	<meta http-equiv="Pragma" content="no-cache">
    <title>牛少波的个人简历</title>
    <link rel="stylesheet" href="static/css/base.css?t=20210816001" media="screen and (min-width: 840px)" />
    <link rel="stylesheet" href="static/css/style.css?t=20210816001" media="screen and (max-width: 839px)"  />
    <script src="static/js/is_pc.js"></script>
	
</head>
<body>
<div id="top">
    <span class="top-title">牛少波的个人简历</span>
</div>
<div id="wrapper">
    <div class="header">
        <div class="header-title">
            <span class="author-name">牛少波</span>
            <span class="author-intro">爱生活，爱科技！(Gitee:<a href="https://luomandike007.gitee.io/luomandike/" style="color: blue">https://luomandike007.gitee.io/luomandike/</a>)</span>
        </div>
        <div class="header-list">
            <div class="header-left">
                <ul>
                    <li>联系方式： 17733863156</li>
                    <li>邮   箱： <a href="mailto:2537351837@qq.com" style="color: blue">2537351837@qq.com</a></li>
                    <li>学   历： 统招本科一批</li>
                </ul>
            </div>
            <div class="header-right">
                <ul>
                    <li>期望职位： 数据工程师，测试工程师</li>
                    <li>期望城市： 石家庄</li>
                    <li>当前坐标： 石家庄</li>
                </ul>
            </div>
            <div class="clear-fix"></div>
        </div>
    </div>

    <div class="person-info">
        <span class="icon"></span>
        <span class="subtitle">个人信息</span>
        <span class="long-line"></span>
        <div class="detail-list">
            <div class="info-left">
                <span>性别： 男</span>
                <span>年龄： 28</span>
                <span>工作年限： 5年</span>
            </div>
            <div class="info-right">
                <span>籍贯： 河北</span>
                <span>学校： 河北大学/通信工程专业</span>
                <span>个人网站：<a href="https://luomandike007.gitee.io/luomandike/" style="color: blue">https://luomandike007.gitee.io/luomandike/</a></span>
            </div>
            <div class="clear-fix"></div>
        </div>
    </div>

    <div class="pro-skill">
        <span class="icon"></span>
        <span class="subtitle">技能清单</span>
        <span class="long-line"></span>
        <div class="detail-list">
            <ul>
                <li style="color: red; font-size: large">前端： element-ui(熟练)/uni-app(熟悉)</li>
                <li style="color: red; font-size: large">后端： Flask(熟练)/Django(熟练)/PyQt5(熟练)</li>
                <li style="color: red; font-size: large">爬虫： Scrapy(熟练)/requests(熟练)</li>
                <li style="color: red; font-size: large">数据处理： pandas(熟练)/numpy(熟练)/jqdata(熟练, 聚宽量化数据库)</li>
                <li style="color: red; font-size: large">其他工具： photoshop(熟练,主要是前端psd文件切图)/vscode</li>
                <li>数据清洗： xpath(熟悉)/lxml(熟悉)/bs4(熟悉)/Regex(熟悉)/json(熟悉)</li>
                <li>数据库： MySQL(熟练)/redis(熟练)/sqlite(熟练)</li>
                <li>服务器相关： 熟悉Linux基本命令/了解docker基本操作</li>
                <li>版本控制软件： 熟练使用git/svn等源代码版本控制工具</li>
                <li>常用软件： charles、pycharm、jupyter notebook、vscode、sublime、聚宽量化数据库</li>
            </ul>
        </div>
    </div>


    <div class="work-experience">
        <span class="icon"></span>
        <span class="subtitle">工作经历(以下只是工作的一部分)</span>
        <span class="long-line"></span>
        <div class="detail-list">
            <div class="company">
                <h2>河北汤鸿汇泰投资管理有限公司（2019年2月 - 至今）</h2>
                <span class="project-title">金融数据爬虫</span>
                <span class="tools">开发工具： pycharm + requests + scrapy </span>
                <h4 style="margin: 2px auto 2px">项目描述：</h4>
                <span class="project-intro">
                    为了及时了解到二级市场数据的变化，需要从东方财富网，天天基金，choice及其他网站上获取每日的数据变化，东方财富网站主要是一些公开的股票信息，天天基金网是
                    公开的基金数据，choice则包含一些付费模块，数据较为丰富，其中东方财富和天天基金主要是web端，choice为pc端，web端主要是通过chrome的调试获取数据
                    API，PC端主要是通过charles获取数据API。
                </span>
                <h4 style="margin: 2px auto 2px">项目职责：</h4>
                <span class="project-intro">
                    1.通过requests、lxml，从网页和api中获取数据，通过xpath和json清洗数据，将数据整理为想要的字段；<br>
                    <span style="text-indent: 2em">2.使用pandas对每日资金流向等数据汇总，通过dataframe.save将数据导出为excel，供研究员查看；</span>
                    <span style="text-indent: 2em">3.通过SQL操作将数据存放到mysql数据库；</span>
                    <span style="text-indent: 2em">4.通过talib、pandas编写回测策略，验证在历史上同样的操作收益、回撤、波动等，并绘制曲线；</span>
                    <span style="text-indent: 2em">5.完成基金经理的一些交易想法，测试历史有效性，收益及风险；</span>
                    <span style="text-indent: 2em">6.对于周期获取的数据，主要是通过Centos自带的crontab定时抓取数据，每日查看运行状况；</span>
                    <span style="text-indent: 2em">7.使用多线程和多进程的方式快速批量获取数据。</span>
                </span>

                <span class="project-title">金融量化回测</span>
                <span class="tools">开发工具： pycharm + jqdata + pandas + numpy </span>
                <h4 style="margin: 2px auto 2px">项目描述：</h4>
                <span class="project-intro">
                    主要的回测工具为聚宽量化数据平台，聚宽平台有比较丰富的量化数据，完全可以通过平台自带的方法获取数据，相应的方法全部存放在jqdata下，通过
                    from jqdata import *就可以导入，聚宽平台有完善的回测流程，只需要自己设置按天或者按分钟的交易规则，平台就能运算出最终收益和其他的参数。
                    有时直接通过自建的python方法模拟交易流程，一般用在周期性或者行业性的大背景策略验证。
                </span>
                <h4 style="margin: 2px auto 2px">项目职责：</h4>
                <span class="project-intro">
                    1.因为量化人员只有我一人，所以量化工作由我一人完成，主要是基金经理提出想法，由我来验证策略有效性；<br>
                    <span style="text-indent: 2em">2.通过jqdata获取的数据一般为二维的DataFrame或者三维的Pane数据，将数据通过清洗和处理得到每日想要交易的股票列表，通过平台自带的
                        order_value(stock, cash)买入指定股票市值，通过order_target(stock, volume)买入指定股数， 平台会根据交易所在时刻的盘面情况进行模拟买卖，主要是停复牌，价格和整手；</span>
                    <span style="text-indent: 2em">3.自己编写的回测函数，主要选取的是申万行业指数，通过指数成分的动量分析，动态的操作买入或者卖出，查看净值的收益及风险；</span>
                    <span style="text-indent: 2em">4.通过程序运行结果，编写回测报告，给基金经理。</span>
                </span>

                <span class="project-title">医疗馆客户管理系统</span>
                <span class="tools">开发工具： pycharm + Flask + element </span>
                <h4 style="margin: 2px auto 2px">项目描述：</h4>
                <span class="project-intro">
                    老板开了一个医疗保健的诊所，前期客户较少，需要一个客户管理，病例登记，理疗登记的软件，所以设计了一款B/S架构的客户管理系统，前端使用的是element-ui，它是
                    基于vue的一个开源ui框架，后端使用的是Flask,数据库使用的是mysql, 镜像系统使用的是centos,通过公司的h3c路由器，将nas端口转发
                    到公司的专有网络上，将阿里云的域名解析到公司的专用线路上。
                </span>
                <h4 style="margin: 2px auto 2px">项目职责：</h4>
                <span class="project-intro">
                    1.使用Flask-SQLalchemy 完成数据库模型的建立， 将模型建立完成之后使用Flask-migrate对数据库进行迁移操作，最后将模型绑定到应用上（一般以app命名）<br>
                    <span style="text-indent: 2em">2.通过flask 的blueprint编写视图函数，通过视图函数操作ORM的增删改查，完成后端的一些操作，将一些临时字段存入redis，例如，登录的会话信息，挂号等；</span>
                    <span style="text-indent: 2em">3.前端部分包括前台端和医生端，前台端主要是客户信息的创建，挂号，收费等，医生端的主要内容是接诊和开方，这两端都是通过心跳包的形式从后端获取数据。</span>

                </span>

                <span class="project-title">融易拍APP</span>
                <span class="tools">开发工具： pycharm + uni-app + requests + Flask </span>
                <h4 style="margin: 2px auto 2px">项目描述：</h4>
                <span class="project-intro">
                    通过requests获取阿里拍卖和京东拍卖的拍卖信息，将数据暴露到自己的app上，然后用户看到关注的标的信息，会主动联系客服人员，自此建立了一个客户和公司的沟通渠道。其中少量的分享页面使用的是uni-app做的，
                    它的优点是跨端自适应，使用效果比较好。
                </span>
                <h4 style="margin: 2px auto 2px">项目职责：</h4>
                <span class="project-intro">
                    1.使用python工具破解阿里加签方式，主要是url参数的MD5, 但是实际破解过程难度较大，京东数据相对好获取一些，将房产数据每日下载更新到数据库；<br>
                    <span style="text-indent: 2em">2.使用flask搭建网站后台，根据抓取的字段编写视图函数，将视图函数API编写请求方式存放入语雀中，供前端人员查看，主要是POST和GET，</span>
                    <span style="text-indent: 2em">3.依然使用的是flask-sqlalchemy库建立模型，通过模型对用户数据，房产信息等内容进行操作；</span>
                    <span style="text-indent: 2em">4.给设计到用户关注板块的视图函数添加装饰器，对用户的访问行为进行保存；</span>
                    <span style="text-indent: 2em">5.用户的临时信息保存入redis, 持久信息保存入mysql;</span>
                    <span style="text-indent: 2em">6.视图函数管理使用的是flask-manage, 项目运行使用的是gunicorn,它可以动态的管理运行的application, 可以根据设置，开启
                    不同的worker, 当其中的某个worker因为一些异常情况down掉以后，它会重新开启新的worker。</span>
                </span>

                <span class="project-title">设备运维</span>
                <span class="tools">开发工具： 无 </span>
                <h4 style="margin: 2px auto 2px">项目描述：</h4>
                <span class="project-intro">
                    因为公司计算机相关人员较少，所以公司关于硬件方面的安装、维修等都是我来完成。
                </span>
                <h4 style="margin: 2px auto 2px">项目职责：</h4>
                <span class="project-intro">
                    1.电脑的配置，采购、维修，网络设备的采购、维修，小鱼易连设备的维修；<br>
                    <span style="text-indent: 2em">2.公司本地服务器和阿里云服务器的维护，两个服务器都是运行的windows server；</span>
                    <span style="text-indent: 2em">3.数据备份工具的维护和设置，主要是群晖nas设备，可以自动将指定文件夹的内容备份到有双盘位的nas中，保证数据不会同时丢失，
                    主要是为了保存数据库的备份文件，但是已有的服务器已经安装系统，无法再设置raid模式，所以购买了nas设备备份用户资料。</span>
                </span>
            </div>
            <!-- <div class="company">
                <h2>北京多吃水果有限公司（2018年7月 - 2019年2月）</h2>
                <span class="project-title">去广告app</span>
                <span class="tools">开发工具： pycharm + Flask </span>
                <h4 style="margin: 2px auto 2px">项目描述：</h4>
                <span class="project-intro">
                    为用户解决各大视频网站的频繁加载广告的烦恼，通过抓包工具对手机app进行抓包，通过对response的分析，
                    判断各种视频网站的广告加载方式，修改广告部分的response以达到去除广告的限制，同时通过编写抖音、
                    一点资讯等无水印视频爬虫，筛选质量较高的视频内容推送到手机app端。
                </span>
                <h4 style="margin: 2px auto 2px">项目职责：</h4>
                <span class="project-intro">
                    1.对各大视频网站app的抓包分析，通过对response分析制定去广告规则；<br>
                    <span style="text-indent: 2em">2.使用flask搭建网站后台，提供接口供手机端访问；</span>
                    <span style="text-indent: 2em">3.完成网站后台的全部内容，包括流量控制，用户和管理员数据库建模，用户权限管理等。</span>
                    <span style="text-indent: 2em">4.通过编写python_requests库编写多线程爬虫程序，将优质视频文件保存下来，推送到app端。</span>
                    <span style="text-indent: 2em">5.通过smtp服务发送广告邮件，通过广告邮件进行营销。</span>
                    <span style="text-indent: 2em">6.一些io操作都是通过celery框架来实现，</span>
                    <span style="text-indent: 2em">7.书写接口api文档，指定符合RESTful风格url匹配规则。</span>
                </span>
            </div> -->
            <div class="company">
                <h2>石家庄科林电气股份有限公司（2017年8月 - 2018年6月）</h2>
                <span class="project-title">用电信息云平台</span>
                <span class="tools">开发工具： pycharm + Django </span>
                <h4 style="margin: 2px auto 2px">项目描述：</h4>
                <span class="project-intro">
                    该项目开发的主要目的是为用户提供一个便捷的用电信息查看、快捷缴费、用电历史纪录、每月用电量曲线图（互联网+）。
                </span>
                <h4 style="margin: 2px auto 2px">项目职责：</h4>
                <span class="project-intro">
                    1.采用前后端分离的技术，后端接口使用DRF框架构建，前端采用模板继承的方法, 我主要负责后端接口的书写；<br>
                    <span style="text-indent: 2em">2.负责MVT中的view编写，操作数据库模型model获取数据库中的数据，将数据库中的模型
                        渲染到templates，将渲染好的templates返回给用户（历史纪录使用的是静态页面,通过django-crontab扩展完成定时生成
                        静态页面的功能）。</span>
                    <span style="text-indent: 2em">3.完成第三方支付功能，支付宝支付的功能。</span>
                    <span style="text-indent: 2em">4.邮件功能，月末将本月的电费使用情况以及每日的用电量信息发送到邮件中，
                        先用序列化器将数据查询出来，然后通过celery将信息发送到邮箱中。</span>
                    <span style="text-indent: 2em">5.使用Django REST framework，完成数据的序列化操作，</span>
                    <span style="text-indent: 2em">6.书写接口api文档，指定符合RESTful风格url匹配规则。</span>
                </span>

                <span class="project-title">智能物联网电能表上位机</span>
                <span class="tools">开发工具： VB </span>
                <h4 style="margin: 2px auto 2px">项目描述：</h4>
                <span class="project-intro">
                    不同省份对智能电表的参数要求不同，研发人员会根据要求修改相应的参数，生产工人完成之后，需要经过多次复检，使用编写好的上位机软件，
                    可以让生产人员一键完成对电表的复检工作。
                </span>
                <h4 style="margin: 2px auto 2px">项目职责：</h4>
                <span class="project-intro">
                    1.使用拖拽式的界面绘制工具，编辑可视化界面；<br>
                    <span style="text-indent: 2em">2.根据电能表国家标准编辑使用到的数据帧，报文的内容包括，起始段 -> 密码段 -> 控制段 -> 数据段 -> 校验段 -> 结束段；</span>
                    <span style="text-indent: 2em">3.通过读取复检工作人员扫码枪中的条形码，开始操作USB转485、USB转载波、USB转红外通信模块对电能表的通信状况做测试；</span>
                    <span style="text-indent: 2em">4.通过485模块对电能表的户号、表号、电能表设置进行比对。</span>
                </span>
            </div>

            <div class="company">
                <h2>北京乔松健康网络科技有限公司（保定）（2016年1月-2017年6月）</h2>
                <span class="project-title">乔松商城</span>
                <span class="tools">开发工具： python + Django </span>
                <h4 style="margin: 2px auto 2px">项目描述：</h4>
                <span class="project-intro">
                    采用B2C的商业模式，主要是卖一些推荐的健康产品，一部分为自主产品，另一部分为淘宝商城的产品。通过向用户推送健康类文章，
                    导购至商城，通过出售相关产品获取相应的利润。
                </span>
                <h4 style="margin: 2px auto 2px">项目职责：</h4>
                <span class="project-intro">
                    1.负责商城的用户注册，登录，密码的重置，第三方登录；<br>
                    <span style="text-indent: 2em">2.redis保存验证码，手机短信码；</span>
                    <span style="text-indent: 2em">3.个人中心页的实现主要是ajax+api实现；</span>
                    <span style="text-indent: 2em">4.负责前端代码的模板抽取；</span>
                    <span style="text-indent: 2em">5.负责大部分View的编写，使用restframework将数据生成固定的json格式；</span>
                    <span style="text-indent: 2em">6.通过django-crontab扩展完成定时生成静态页面的功能，实现了首页静态化；</span>
                    <span style="text-indent: 2em">难点主要是前端代码的抽取和渲染，首先理解前端代码逻辑然后对前端代码进行抽取，通过
                        jijia2语法在对应位置设置相关变量，在定时静态化时按照相应的数据格式进行网页静态化渲染的功能。</span>
                </span>
                <span class="project-title">京东商城爬取</span>
                <span class="tools">开发工具： python + scrapy + 网页调试工具 + postman </span>
                <h4 style="margin: 2px auto 2px">项目描述：</h4>
                <span class="project-intro">
                    将网上商城的相关健康商品信息抽取并清洗，然后经过固定的算法将产品价格进行修改增加入产品数据库，为产品商城做商品数据
                    支撑。
                </span>
                <h4 style="margin: 2px auto 2px">项目职责：</h4>
                <span class="project-intro">
                    1.对商品分类页进行页面分析；<br>
                    <span style="text-indent: 2em">2.商品浏览器页的翻页请求处理；</span>
                    <span style="text-indent: 2em">3.使用scrapy-parse对响应解析，对商品详情的数据抽取，
                        使用lxml的etree模块通过xpath规则对数据进行抽取；</span>
                    <span style="text-indent: 2em">4.产品价格通过另外的api实现，将不超过二十个产品的id构造新的请求，将返回的价格
                        通过id匹配存入数据库。</span>
                    <span style="text-indent: 2em">5.通过item将数据传递给pipeline将数据进行数据持久化保存。</span>
                    <span style="text-indent: 2em">难点是反反爬操作，主要构建User-Agent池，ip池，解决常见的反爬策略。</span>
                </span>
                <span class="project-title">自媒体文章抽取（app）</span>
                <span class="tools">开发工具： python + requests + fiddle </span>
                <h4 style="margin: 2px auto 2px">项目描述：</h4>
                <span class="project-intro">
                    该项目的主要目的是自媒体软件上的健康类视频文件和健康类文章，将爬下的文章经过清洗，定时的向用户推送。
                </span>
                <h4 style="margin: 2px auto 2px">项目职责：</h4>
                <span class="project-intro">
                    1.使用fiddle抓取app的数据包；<br>
                    <span style="text-indent: 2em">2.json数据包的逻辑分析；</span>
                    <span style="text-indent: 2em">3.模仿app请求的数据伪造；</span>
                    <span style="text-indent: 2em">4.利用postman软件对伪造请求进行测试；</span>
                    <span style="text-indent: 2em">5.使用python-requests对伪造请求进行；</span>
                    <span style="text-indent: 2em">6.对服务器返回响应的清洗和存储；</span>
                    <span style="text-indent: 2em">难点自媒体文章的抽取，在经过一定的规则抽取后，经常出现错版的现象，主要的解决方案
                        还是通过人工审核的方式解决。</span>
                </span>
                <span class="project-title">乔松健康管家、一划赚等项目</span>
                <span class="tools">开发工具： 无 </span>
                <h4 style="margin: 2px auto 2px">项目描述：</h4>
                <span class="project-intro">
                    该项目的主要功能是为独守或者短时间无法照顾的老人提供健康数据的收集，老人的健康数据通过每日的设备检测将体检数据发送到云平台上，
                    通过分析得出老人的健康报告，定时定期发送给子女手机上，另外子女可以通过云监控及时的查看老人的当前状态。
                </span>
                <h4 style="margin: 2px auto 2px">项目职责：</h4>
                <span class="project-intro">
                    在此项目中我主要负责项目的运维工作，主要是对软件运行过程中出现的问题做及时的记录，并反馈结果给开发人员。
                    这些项目中，我主要学习了软件的运作流程，自己在空闲的时候看一些编程类的书籍，这段时间成长特别快，得到了领导的表扬。
                </span>
            </div>
        </div>
    </div>
    <div class="open-source">
        <span class="icon"></span>
        <span class="subtitle">工作项目或作品</span>
        <span class="long-line"></span>
        <div class="detail-list">
            <ul>
                <li>
                    <span class="source-name">项目名称：M-blog</span><br>
                    <span style="text-indent: 2em">一款使用Python3.0 + flask写的前后端不分离的应用博客系统，前端采用jijia2语法，由子模板继承获得新的，数据库
                        使用的是mysql数据库，通过Flask-SQLAlchemy关系型数据库框架对数据库进行操作，它提供了高层的 ORM 和底层的
                        原生数据库的操作。</span>
                    <span class="source-url" style="text-indent: 2em">源代码地址：<a href="https://github.com/luomandike/luomandike.github.io/tree/master/code/m--blog" style="color: blue">https://github.com/</a></span>

                </li>
            </ul>
        </div>
    </div>

    <div class="honor-eva">
        <div class="self-evaluation">
            <span class="icon"></span>
            <span class="subtitle">自我评价</span>
            <span class="long-line short-line"></span>
            <div class="detail-list">
                <ul>
                    <li>喜欢学习新东西，善于折腾</li>
                    <li>工作认真，细心，有很强的责任感</li>
                    <li>良好的语言沟通能力，能够积极主动交流以便解决问题</li>
                    <li>性格外向开朗，喜欢运动，喜欢走路，能够独立解决问题</li>
                </ul>
            </div>
        </div>

        <div class="honor-reward">
            <span class="icon"></span>
            <span class="subtitle">荣誉奖励</span>
            <span class="long-line short-line"></span>
            <div class="detail-list">
                <ul>
                    <li>获得大学英语四级证书</li>
                    <li>获得大学计算机一级证书</li>
                    <li>获得大学计算机二级证书</li>
                    <li>获得大学计算机三级证书</li>
                </ul>
            </div>
        </div>
        <div class="clear-fix"></div>
    </div>
</div>
<script type="text/javascript">var cnzz_protocol = (("https:" == document.location.protocol) ? " https://" : " http://");document.write(unescape("%3Cspan id='cnzz_stat_icon_1275375838'%3E%3C/span%3E%3Cscript src='" + cnzz_protocol + "s5.cnzz.com/z_stat.php%3Fid%3D1275375838%26show%3Dpic' type='text/javascript'%3E%3C/script%3E"));</script>
<script type="text/javascript">
    var windowWidth =  document.body.clientWidth;
    var templateWidth = 320;
    if(windowWidth < 840) {
        var calcFontSize = (windowWidth) / templateWidth * 14 + "px";
        document.getElementsByTagName("html")[0].style.fontSize = calcFontSize;
    }
</script>
</body>
</html>
